Visibility calculations for 3D computer graphics

ABSTRACT

Disclosed is a method of reducing the complexity of hidden surface removal in 3D grapghic systems. A fuzzy projection (FF) of a surface (SU) as seen from a number of viewpoints (VP) in a bounding box (BB) is stored in a buffer (FA) having elements (FE). A combination of all the patched (PT) of the surface (SU) viewed form a fuzzy region (FR) where surfaces can be either visible, hidden, or unable to be determined with certainty as to whether or not visible/hidden. A non-fuzzy region (NF) describes those patches (PT) that are always visible.

FIELD OF INVENTION

The present invention relates to computer graphics and, in particular,to the efficient determination of visible and/or invisible surfaces tothereby preferably permit improved hidden surface removal, generally in3D systems.

BACKGROUND ART

Visible surface detection is one of the most basic operations in 3Dgraphics. It is applied to generate images of surfaces directly visibleto a viewer. Recently, it has also been adopted in the radiositycalculations to compute the energy interactions between surfaces.

The standard strategy of visible surface detection is to divide surfacesinto patch elements and compare the spatial relationship between theseelements. Using this strategy, the visibility of surfaces cannot bedetermined until they have been analysed in detail. Although manytechniques have been developed to address this issue, none are ideal asthey either still require elaborate analysis of surfaces, or they imposevarious restrictions to the scene.

The limitations of the current techniques can seriously affect the speedof visible surface computation. If the scene is complicated, manysurfaces may be invisible. However, the image generation is often sloweddown by the need to analyse each surface element in detail.

The same limitation has also seriously affected the efficiency of theradiosity computations. Currently, these computations are very slow dueto the need to elaborately compute the visibility between every pair ofsurface elements. Again, these computations may be substantially reducedif surface elements obviously visible or invisible to each other can bemore easily computed.

The early visible surface techniques mainly applied various sortingschemes to find the occluding surface primitives. However, with theadvancement in hardware technology, it is now common practice to reducethe need for sorting and comparisons by using a large amount of fastmemory. This memory may be used to store the object data, such as aBSP-tree. It may also be used to store the depth and surface projectiondata, as with a z-buffer.

The z-buffer method is simple and has a very low growth rate. However,it still requires depth evaluations and comparisons at each pixel by allthe patches projecting onto it, because their visibility is unknown.

The BSP-tree method has the advantage that if the scene is static, anorderly traversal of the BSP-tree is generally sufficient to establishthe depth order. However, it still requires the scan-conversion of eachpath. In addition, the technique needs to re-compute the BSP-treewhenever objects in the scene move.

There have been two main strategies of avoiding detailed depth analysisof totally invisible entities. One strategy, applies the property thatvisibility changes can only occur at the contour edges of surfaces.Visibility computations of internal edges or patches can be reduced byfirst comparing them with these edges.

An alternative strategy is to use the invisible coherence of the scene.These techniques apply the property that an edge is likely to remaininvisible in a scan line if it is invisible in the last scan line. Suchan edge may therefore be treated specially to avoid unnecessary depthcomparisons.

Although the above strategies can reduce some visibility computations,they have limitations. The contour-oriented techniques can operate onlyin environments which consist exclusively of convex or non-penetratingsurfaces. Both the contour-oriented and the scan line approaches arealso limited in their ability to reduce visibility computations. In theformer, an edge still needs to be tested against the contour edges evenif it is invisible. In the latter, all the invisible edge segments ateach scan line have to be sorted. These segments also require depthcomparisons with the pixels they are on. Finally, all these techniquesrequire some sorting or searching.

SUMMARY OF THE INVENTION

It is an object of the present invention to substantially overcome, orameliorate, the problems associated with the prior art, throughprovision of an improved method for performing visibility calculations.

In accordance with one aspect of the present invention there isdisclosed a method of reducing the complexity of visibility calculationsrequired for the production of multi-dimensional computer generatedimages or the reduction of multi-dimensional data to multi-dimensionaldata having at least oneless dimension, said method comprising the stepsof:

(1) prior to an occlusion or invisibility relationship computation(known per se) being carried out on a plurality of surfaces, selectedviewpoints to be calculated are divided into groups;

(2) for selected ones of said surfaces, determining for each said groupwhether each said selected surface is

(a) an always unoccluded surface, an always hidden surface, or aremaining surface; or

(b) an always unoccluded surface, or a remaining surface; or

(c) an always hidden surface, or a remaining surface; wherein saidremaining surface is a surface which is unable to be determined withcertainty as to whether it is either unoccluded or hidden;

(3) exempting from said occlusion or invisibility relationshipcomputation those surfaces which are either always unoccluded or alwayshidden;

(4) maintaining a record of said remaining surfaces; and

(5) carrying out occlusion or invisibility relationship computations onsaid remaining surfaces.

In accordance with another aspect of the present invention there isdisclosed a method of reducing the visibility related computations in anenvironment consisting of three-dimensional abstract or physicalsurfaces, said method comprising the steps of:

(1) prior to a visibility computation (known per se) being carried out,some or all viewpoints or possible occurrences of viewpoints areclassified into groups of viewpoints;

(2) defining one or more projection surfaces (known per se) for thepurpose of generating simultaneous projections of surfaces or surfaceelements with respect to a group of viewpoints;

(3) for selected surfaces, and for each group of viewpoints, determiningwhether those surfaces or their surface elements are always invisible tosaid group by computing and comparing their simultaneous projections onsaid projection surfaces;

(4) ignoring or treating specially some or all surfaces or surfaceelements which are always invisible to said group of viewpoints duringthe actual visibility or visibility related computations for some or allviewpoints in said group.

In accordance with another aspect of the present invention there isdisclosed a method of reducing the visibility, radiosity or visibilityrelated computations in an environment consisting of three-dimensionalabstract or physical surfaces, said method comprising the steps of:

(1) prior to a visibility computation (known per se) being carried out,some or all viewpoints or possible occurrences of viewpoints areclassified into groups of viewpoints;

(2) defining one or more projection surfaces (known per se) for thepurpose of the simultaneous projections of surfaces or surface elementswith respect to a group of viewpoints;

(3) dividing each of said projection surfaces into regular or irregulargrids;

(4) defining a data structure which organizes computer storage forstoring of projections on said grids;

(5) for each of the selected surfaces and for each group of viewpoints,simultaneously projecting said surfaces or their surface elements ontothe projection surfaces, computing grid cells which are always under theprojections, storing the furthest possible distances between viewpointsof said group and said surfaces to provide surface distancescorresponding to those cells in said computer storage;

(6) for each patch element of said surfaces, determining those said gridcells that said patch element might project onto, comparing the depthsstored in the cells with the furthest possible depth between the patchelement and said group of viewpoints to determine whether the patchelement is always occluded by other surfaces;

(7) ignoring or treating specially some or all surfaces or surfaceelements which are always visible to said group of viewpoints during theactual visibility or visibility related computations for some or allviewpoints in said group.

BRIEF DESCRIPTION OF THE DRAWINGS

A preferred and a number of other embodiments of the present inventionwill now be described with reference to the drawings in which:

FIGS. 1A and 1B show two viewpoint hierarchies;

FIG. 2 illustrates the projections at an arbitrary viewpoint;

FIG. 3 shows the relationship between projection boxes and a fuzzyprojection box;

FIG. 4 shows the creation of fuzzy and non-fuzzy regions;

FIGS. 5A, 5B and 5C show a front-facing surface and its correspondingfuzzy and non-fuzzy regions;

FIG. 5D shows a point that is not totally hidden to a viewpoint boundingbox;

FIG. 5E shows a point that is totally hidden to a viewpoint boundingbox;

FIGS. 6A to 6D show the detection of totally invisible patches:

FIGS. 7A and 7B show the detection of totally visible/non-hidingpatches:

FIGS. 8A to 8D show the scan-conversion of the non-fuzzy regions;

FIGS. 9A to 9D show the scan-conversion of the fuzzy regions; and

FIG. 10 illustrates the mapping between a cache and the fuzzy array.

FIGS. 11A and 11B show views of a front-facing surface region;

FIGS. 12A, 12B and 12C show cut-plane views of the projection of surfaceregions;

FIGS. 13A, 13B and 13C show respectively one, two and four room modelsused in testing the preferred embodiment;

FIG. 14 illustrates the direct computation of the fuzzy region of anedge;

FIG. 15 shows a hemi-cube pyramid structure;

BEST AND OTHER MODES FOR CARRYING OUT THE INVENTION

The preferred embodiments relate to various methods for calculatingthree dimensional computer graphic images and they are generally termedherein as the "fuzzy projection methods".

A Simple Fuzzy Projection Method

In this embodiment a method is provided to map the projections ofentities at one or more viewpoints to a set of planes. This embodimentalso provides a means to compute regions which contain all theseprojections and regions which are within each and every projection. Thespatial position, time and the optical properties described in thisembodiment can be replaced by other physical or abstract variables ifthe replacement does not affect the mathematical relationship ofentities in the graphic image.

Prior to detailed discussion of this and the other embodiments, it isuseful to introduce various terms and define variables used in 3Dgraphics.

Firstly, with reference to FIGS. 1A, 1B and 2, a viewer, as shown by theeyeballs in the Figs., is an abstract and dimensionless observer wherethe visibility of its surrounding objects is to be obtained. A point isvisible to a viewer if a ray fired from the viewer to it is not blockedby any opaque object. There can be more than one viewer at any time andeach viewer may move or rotate over the time. A viewpoint VP is thespatial position and orientation of a viewer at an instance of time. Aview vector VV is a vector from the viewpoint VP to a point PO beingobserved (see FIG. 2).

Several viewpoints VP can be grouped together through certain propertiesthey share. Related groups of viewpoints may in turn form a higher levelgroup. This merging may be repeated to create a viewpoint hierarchy. Acurrent group is the group of viewpoints VP that are currently beingconsidered. In FIG. 1A, viewpoints VP₁, VP₂, VP₃ and VP₄ each reside ona path PA₁ and represent viewpoints at times 1, 2, 3 and 4, and can beconsidered as one group. Similarly, for the viewpoints VP₅ -VP₇.

Each group of viewpoints is associated with a coordinate system calledthe group coordinate system CS. A viewpoint bounding box BB of a groupof viewpoints VP is the smallest right quadrangular prism enclosingthese viewpoints and whose edges are parallel to the axes of the groupcoordinate system. If the positions or occurrences of a group ofviewpoints are not precisely defined, the associated viewpoint boundingbox should be the said prism which encloses the space likely to beoccupied by these viewpoints. A group of viewpoints may be lying on aplane or a point. In such cases, the viewpoint bounding box maydegenerate into a plane or a point. A point PO is totally visible fromthe bounding box BB if it is always visible from every possibleviewpoint VP in the box BB. Conversely, a point is totally invisiblefrom the bounding box if it is hidden from the view of every possibleviewpoint VP in the box BB. In FIG. 1A, viewpoints VP₁ -VP₄ reside in abounding box BB₁, and viewpoints VP₅ -VP₇ reside in a bounding box BB₂.The boxes BB₁ and BB₂ can be considered as first level bounding boxes.If the boxes BB₁ and BB₂ are combined, a second level bounding box BB₃is formed. Rather than the bounding box being a square or rectangularprism, it can also be an ellipsoid, sphere or arbitrary volume.

A viewpoint group may be degenerated and contain only a singleviewpoint. In this manner, all the techniques applicable to a normalviewpoint group are also applicable to a single viewpoint. In this case,the viewpoint bounding box BB degenerates into a point which coincideswith the viewpoint VP.

In FIG. 1B, multiple viewers at different times are illustrated. A pathPA₂ of one viewer of a group is shown extending between locations at twopoints in time. VP₈ represents the viewpoints at time "1" and VP₉ theviewpoints at time "2", with BB₄ the bounding box at time "1" and BB₅the bounding box of the union of the viewpoints VP₈ and VP₉.

Referring now to FIG. 2, shown is a projection box PB, a rightquadrangular prism with its center on a viewpoint VP and its edgesparallel to the principal axes of the current group coordinate systemCS. The six facets of the box PB are called the projection faces PF.Each projection face PF is on a plane called a projection plane PP. Theprojection PR of a point PO₁ in the direction perpendicular to aprojection plane PP is the intersection between that plane PP and theview vector VV from the viewpoint VP to the point PO₁. Conversely, sincea straight line emanating from the viewpoint VP can only intersect theprojection point PR on a projection plane PP, a location on that planealso represents a unique viewing direction from the viewpoint.

In this manner:

    VV=PO.sub.1 -VP

The area around the visible space point PO₁ is a visible patch PT andthe view vector VV passes through this to an invisible space point IP,occluded by the patch PT.

The projection calculations on each plane are identical to the findingof the image region of an object in the direction perpendicular to thatplane. The projection of an object to a projection plane PP thereforerepresents its image region in the direction parallel to the normal N ofthat plane.

A viewpoint VP may not be omni-directional but has a limited field ofview. Hence certain projection faces may be partially or totallyunobservable from the viewpoint. The hidden area of a projection face PFcan be obtained by intersecting it with the viewing horizon of theviewpoint VP.

Locations on the projection plane PP can be expressed by a coordinatesystem CS called the projection coordinates. The origin of thiscoordinate system is at the center of the projection face PF. Its x, yaxes are parallel to the edges and its z axis is parallel to the normalof the face.

Because they are all parallel, the projection coordinate systems of thecurrent group of viewpoints VP have the same scale factor so that pointshaving the same viewing direction from their viewpoints always have thesame projection coordinates.

If points on two surfaces project on the same location, PR for example,on a projection face PF an occlusion is taking place. The point on thesurface further from the viewpoint VP is hidden by the point on thesurface closer to the viewpoint VP unless the latter is transparent.This can be determined by the distances d between these points PR andthe viewpoint VP.

Every edge of the projection boxes PB of a group is parallel to one ofthe principal axes (x, y or z) of the respective group coordinate systemCS. Since the vectors parallel to the principal axes can have at mostsin directions, these faces are classified by their normal directionsinto six sets.

This is shown in FIG. 3 where viewpoints VP₁, VP₂ and VP₃, each withrespective projection boxes PB₁, PB₂ and PB₃, reside within a boundingbox BB₁.

The projections on projection boxes PB₁ -PB₃ can be correlated byanother box whose edges are also parallel to the axes of the currentgroup coordinate system CS. This box is called the fuzzy projection boxFB. It is called "fuzzy" because it is the combined projection of asingle surface (or object, entity, etc.) from all viewpoints, with thecombined projection creating a fuzzy image of the surface. Each face ofthe box is called a fuzzy projection face FF. The face FF lies on aplane called the fuzzy projection plane FP. A projection coordinatesystem can be defined for a fuzzy projection plane FP and the fuzzyprojection face PF on it. Similar to the projection coordinate systemsCS of the projection planes, the origin of this coordinate system is atthe centre of the fuzzy projection face FF and its axes are respectivelyparallel to the edges and the normal of the face FF.

By setting the scale factor of the projection coordinate system of eachof the fuzzy projection planes to be the same as the scale factor oftheir associated projection planes PP, each set of projectionplanes/faces has a one-to-one mapping with the fuzzy projectionplane/face that is facing the same direction. Points on a projectionplane/face can therefore be linearly mapped to the associated fuzzyprojection plane/face.

Points on a set of projection planes having the same projectioncoordinates, and hence representing the same viewing direction, map to apoint on the associated fuzzy projection plane that has the samecoordinates. Therefore, similar to the projection planes PP, a point onthe fuzzy projection plane FP also represents a unique viewingdirection. However, the point is not associated with a particularviewpoint.

Since the viewpoints VP can have a limited field of view, some areas ofthe projection planes may be unobservable. The hidden area of a fuzzyprojection face FF is the area where the corresponding areas on all theassociated projection faces are hidden. A fuzzy projection face FF isinactive if all its area is hidden.

To sample the projections on the Fuzzy projection box FB, each fuzzyprojection plane FP is tessellated by two sets of parallel and evenlyspaced grid lines forming a fuzzy array FA. By ensuring that there arealways grid lines on the edges of the fuzzy projection faces FF, thesefaces are divided into identical rectangular or square cells. Each cellis called a fuzzy element FE. Each element FE, in additional torepresenting the viewing direction associated with its center, alsorepresents a unique solid angle A of viewing directions, as seen in FIG.2, represented by its perimeter.

Other representation schemes such as the quadtree subdivision can beapplied. All the z-buffer oriented operations would be accordinglychanged to operation under such schemes, however the regular subdivisionof the faces is considered the most efficient embodiment of the presentinvention.

Surfaces in the viewing environment are approximated by meshes ofpatches PT. A surface can also be represented by a hierarchy of patches.Different levels of the hierarchy are meshes of patches at differentdetails. Each patch PT is treated as flat and is approximated by apolygon. The projection of a surface SU to a viewpoint VP is the regioncombining all the projection regions of its patches. This region iscalled the projection region PE of the surface. Since the projectionregion PE of a patch PT represents its image region, the projectionregion PE of a surface SU also represents the image region of thatsurface.

The smallest right quadrangular prism just enclosing the patch and whoseedges are parallel to the axes of the current group coordinate system iscalled the bounding volume of the patch. The shortest and longest depthsof a patch are the shortest and longest depths between the currentviewpoints and points on the patch. The depth corresponds to thez-magnitude in the coordinate direction perpendicular to the projectionplanes currently being considered they are usually difficult to find,they are approximated by the shortest and the longest depths between theviewpoint bounding box and the bounding volume of the patch, which canbe determined by partitioning the space by the planes of the viewpointbounding box and determining which partitions the bounding volume of thepatch is in.

This is shown in FIG. 4 where a patch PT of a surface is viewed frompoints VP₁, VP₂ and VP₃ in a bounding box BB₁. Associated with eachviewpoint VP₁ -VP₃ is a projection region PE₁ -PE₃ which is seen tointersect with the corresponding projection face PF₁ -PF₃ in a differentmanner for each viewpoint VP₁ -VP₃.

The projections of the patch PT on the same set of projection faces PF₁-PF₃ can be mapped to the associated fuzzy projection face FF. The areason the fuzzy projection box FB₁ containing all these mappings are calledthe fuzzy (combined) regions FR of the patch because logically theregion is fuzzy. They cannot tell whether the patch PT₁ actuallyprojects on the corresponding area on each projection box PB₁ -PB₃.

Similar to the case of patches, the fuzzy region FR of a surface SU isproduced by combining the mappings of the surface projections for anumber of patches. In this manner each projection region of the surfaceis the logical-OR of all the projections of the patches, and the fuzzyprojection of each patch is the logical-OR of its projection regions.Accordingly, the fuzzy region FR of a surface SU is also the logical-ORof the fuzzy projections of its patches. This region is equivalent tothe superimposition of all the images of the surface seen from thecurrent viewpoints.

On the fuzzy projection box FB₁, there can also be areas which arealways mapped on by the projection regions of the surfaces from thecurrent group of viewpoints. On these areas the logical-AND of theprojection regions PE₁ -PE₃ of the surface SU is true. Because theoutcomes of the logical-AND operations are always a subset of theoutcomes of the logical-OR operations, these areas are always within thefuzzy region FR of the surface SU.

Logically the areas are non-fuzzy as the projection status of thecorresponding areas on the current projection boxes is always true.Therefore they are called the non-fuzzy region NF. An alternative termis the umbra region.

The non-fuzzy region NF of a surface SU can be obtained by mapping theprojections of the surface at all the current group of viewpoints on thefuzzy projection box FB and finding the area within every projection.However, this is costly if there are many viewpoints. To reduce thecomputations, a series of approximations which err on the side ofcaution are applied.

It will be apparent to those skilled in the art that there can existplural non-fuzzy regions for each surface.

Referring to FIG. 5A, the first approximation assumes that theviewpoints can be at any position in the current viewpoint bounding boxBB₂ and each viewpoint has a field of view containing all the possiblefields of view of the current group of viewpoints. The patches PT_(n)facing all these viewpoints are determined. They are called thefront-facing patches. A method for finding these patches is described indetail below in sub-section headed The Detection of Patches Front-Facingto a Viewpoint Bounding Box.

Interconnected front-facing patches PT_(n) are grouped into surfaceregions called the front-facing sub-surfaces SU₂. The edges at theborders of these regions are called the boundary edges BE.

Since the front-facing patches PT_(n), and their boundary edges BE, arefacing all the possible viewpoints VP in the viewpoint bounding box BB,a front-facing sub-surface SU₂ never curves back and is always facingthese viewpoints. The projections of its boundary edges BE thereforealways surround its projection region PR.

Similar to the patches as shown in FIG. 5B, the projection of eachboundary edge BE can be mapped on the fuzzy projection box FB₁. A fuzzyregion FR₁ of the edge BE₁ is the region on the box FB₁ which containsall the projection mappings of that edge at every possible viewpoint inthe current viewpoint bounding box BB₂.

The fuzzy regions of all boundary edges belonging to a front-facingsub-surface can be combined into an area called the fuzzy boundaryregion BF. If a point is not in the fuzzy boundary region BF, theboundary edges BE do not project on all the associated points on theprojection boxes. Because any change of projection status must be at theprojection of the boundary edges, the point must be within every mappingof the projection regions of the front-facing sub-surface SU, or it mustbe outside all the mappings.

Since the fuzzy region is the combined projection of the front-facingsub-surface, any area within it must be mapped-by at least oneprojection region of the sub-surface. Therefore, the areas inside it butoutside the fuzzy boundary region BF always contain the mappings of theprojection regions of the sub-surface. These areas by definition are thenon-fuzzy region NF₁ of the front-facing sub-surface.

As the viewpoints can have any orientation and be anywhere in theviewpoint bounding box BB, the fuzzy region FR of an edge is difficultto compute. However, the extent of this region on a fuzzy projectionface can be more easily obtained. The computation of this extent isdescribed below in sub-section headed The Computation of the FuzzyExtent of Boundary Edges and Patches. The smallest rectangle totallyenclosing this extent and with boundary on the grid lines of the fuzzyprojection plane is called the fuzzy extent EF of the edge on thatplane.

This is seen in FIG. 5C where the same fuzzy projection face of FIG. 5Bis shown in which the fuzzy boundary region BF₁ is replaced by the fuzzyextents EF, of the boundary edges BE₁ . . . etc.

The region containing all the fuzzy extents EF of the boundary edgesalways encloses the fuzzy boundary region of the front-facingsub-surface. Therefore, the subtraction of it from the fuzzy region FRproduces an area always within the non-fuzzy region. This area is usedto approximate the non-fuzzy region NF.

If a surface contains large patches and hence large boundary edges, theuse of the fuzzy extents to approximate its fuzzy boundary region may beinefficient. The fuzzy regions of its boundary edges can be directlyevaluated using the method described below in sub-section headed DirectComputation of the Fuzzy Region of an Edge. Alternatively, each edge canbe divided into sub-edges. The fuzzy region of that edge can then bereplaced by the fuzzy extents of its sub-edges.

An Invisibility Fuzzy Projection Method for the Detection of TotallyInvisible Patches.

In this embodiment a method is provided to compare the mappings ofentities on the fuzzy projection faces FF associated with a group ofviewpoints VP. Through this operation, entities which may be treated asinvisible to all these viewpoints, can be detected.

Referring to FIG. 6A, a viewpoint boundary box BB₃ is shown to observethree patches PA_(A), PT_(B) and PT_(C) through a mesh surface SU_(M).FIGS. 6B, 6C and 6D show respectively the fuzzy extents EF_(A), EF_(B)and EF_(C) for the patches PA_(A), PT_(B) and PT_(C) on respective fuzzyprojection faces FF_(A-C). Also shown is the non-fuzzy region NF₃ of themesh surface SU_(M).

The determination of totally invisible surfaces is based on a propertyof the non-fuzzy regions. In FIG. 5D, point PO2 is hidden by surface SU1from viewpoint VP11 in the current viewpoint bounding box BB5. If thepoint is visible from another viewpoint VP10 which is also in BB5, thenSU1 has to curve back and reach behind PO2. However, in such a situationpart of SU1 next to a point SP would become back-facing to viewpointVP12 in BB5. SU1 would then contain several front-facing surfaces whichdo not contain the surface around PO2. The non-fuzzy region of SU1 thenwould not cover the projection mapping of PO2.

Because of the above property, if the projection mapping of a point froman arbitrary point in the current viewpoint bounding box is within thenon-fuzzy region of a surface, and if that point is behind the surfacefrom the viewpoint, that point would always be hidden by the surfacefrom all viewpoints in the box. This is shown in FIG. 5E. Here, theinvisibility detection is performed using a single viewpoint (either oneof VP13 or VP14 or other in the box BB6).

The above observation can be used to detect totally invisible patches,each patch whose visibility is to be determined is selected. The fuzzyelements within the projection mapping of the patch from a viewpoint inthe viewpoint bounding box are accessed. If the distance stored in eachelement is smaller than the depth of the patch from the viewpoint in thedirection associated with that element, the patch is an always invisiblepatch because of the property of non-fuzzy regions just mentioned.

To reduce the above computations, the projection mapping of the patchcan be substituted by the extent of that mapping, or the fuzzy extent ofthe patch. Alternatively, the depth of the patch from the viewpoint maybe replaced by the longest possible depth between the patch bounding boxand the viewpoint or the viewpoint bounding box. Such approximationsalways err on the side of caution and do not affect the correctness ofhidden surface computations.

2D fuzzy arrays FA_(A), FA_(B), FA_(C), with as many storage elements asthe fuzzy elements EF on each active fuzzy projection face FF_(A-C) areallocated to store the mapping information on the face. All the fuzzyarrays FA_(A-C) are collectively called a fuzzy buffer generally, amemory that is two-dimensionally addressable.

Each fuzzy element EF contains a depth field. The depth field stores thedepth of the patch PT whose fuzzy extent EF surrounds the fuzzy elementFE.

A cycle of fuzzy buffer computations is applied for each group ofviewpoints. First, the depth fields are initialized to infinity toindicate that no surface has yet been projected on the projection boxPB.

The fuzzy extents EF of the boundary edges BE and the fuzzy extents EFof the patches PT of a front-facing sub-surface of selected opaquesurfaces are computed (as described below in sub-section headed TheComputation of the Fuzzy Extent of Boundary Edges and Patches). Usually,large surfaces are selected. Based on these extents, the non-fuzzyregion NF of the front-facing sub-surface is computed by a scan linetechnique described below in sub-section headed The ComputationNon-Fuzzy Regions. Furthermore, the fuzzy region of an edge can be foundby direct computation as described in Appendix 6.

Using the above, the longest depth of the fuzzy elements in eachhorizontal segment of every non-fuzzy region are obtained. The distancestored in each element of the array is compared with the depth stored inthe corresponding element in the fuzzy buffer. If the latter is larger,it is replaced by the former.

After all the non-fuzzy regions of the opaque front-facing sub-surfaceshave been updated to the fuzzy elements, each element in the fuzzybuffer contains the longest depth of the closest surface that can beseen from a chosen viewpoint in the current viewpoint bounding box inthe direction associated with that element. The fuzzy buffer can then beused to compute patches totally invisible from the current viewpointbounding box. These patches are deemed to be totally invisible patches.

To detect totally invisible patches, the fuzzy elements within the fuzzyextent, the projection mapping, or the extent of the mappings of eachpatch are accessed. If the depth stored in each element is smaller thanthe shortest depth of the patch, the patch is always hidden in thedirection represented by that element. Because of the property ofnon-fuzzy regions, or because of the property that the fuzzy extentcovers all the possible viewing directions of the patch, the patch istotally invisible if it is found to be hidden at every fuzzy elementwithin that extent.

As seen in FIG. 6B, the fuzzy extent EF_(A) of patch PT_(A) fallsentirely within the non-fuzzy region NF₃. Accordingly, the patch PT_(A)is hidden from the viewpoints in the bounding box BB₃.

In FIG. 6C, the fuzzy extent EF_(B) of patch PT_(VB) falls both insideand outside the non-fuzzy region NF₃. Accordingly, those four elementsoutside may be either visible or hidden, and for the six elementsinside, for all view directions through those elements, the patch PT_(B)is hidden.

In FIG. 6D, the fuzzy extent EF_(C) of patch PT_(C) passes the depthtest for every fuzzy buffer element it falls on. Patch PT_(C) is alwaysinvisible from the bounding box BB₃.

Since there is always substantial overlappings between the fuzzy extentsof adjacent patches, a high-speed cache can be used to speed up thereading and writing of the fuzzy elements within the fuzzy extent ofeach patch. The cache can also be used in the visibility fuzzyprojection technique discussed in the next section. Appendix 5 describesin more detail the use of a cache memory.

A Visibility Fuzzy Projection Method for the Detection of TotallyVisible Patches.

In this embodiment a method is provided to compare the mappings ofentities on the fuzzy projection faces associated with a group ofviewpoints. Through this operation entities which may be treated asvisible and not hiding other entitles to all these viewpoints can bedetected.

For simplicity and speed, this method assumes that every surface doesnot hide itself in any viewing direction from the current viewpointbounding box except those parts which do not face that direction. Thisimplies that no two parts of the same surface that are facing aviewpoint in the bounding box would hide each other. All the planar andquadric surfaces have this property. Other surfaces can be subdividedinto smaller surfaces which satisfy this criterion.

As seen in FIG. 7A, a viewpoint bounding box BB₄ observes three patchesPT_(D), PT_(E) and PT_(F) arranged about a mesh surface SU_(N).

Similar to the technique for detecting totally invisible patches, afuzzy buffer consisting of several arrays is used to store the resultsof projections on the fuzzy elements.

Every element of the fuzzy buffer contains a field called thehomogeneous indicator. This is a three-valued field which indicateswhether there is any projection on the associated grid cell on the fuzzyprojection box and whether one or more surfaces are being projected ontothe cell. The indicator is zero if it is not enclosed by any fuzzyregion. The indicator is one if it is inside the fuzzy region of onesurface. The indicator is two if it is within the fuzzy regions of morethan one surface. First, the homogeneous indicators are initialized tozero. This shows that no surface has yet been projected on the fuzzybuffer.

Using the scan-conversion technique described below in sub-sectionheaded The Scan-Conversion of the Fuzzy Regions, the horizontal segmentsof the fuzzy region of each surface are obtained.

The homogeneous indicators under each segment are examined. Eachindicator is incremented by one if it is zero or one.

After the fuzzy regions of all the surfaces have been updated into thefuzzy buffer, each patch is examined. It is ignored if it has beendetected as totally invisible by the invisibility fuzzy projectiontechnique.

If the homogeneous indicators within the fuzzy extent of the patch areall one, only one surface can be seen from the current viewpointbounding box in all viewing directions within that fuzzy extent. Thesurface has to be the one the patch is on. The patch therefore does nothide other surfaces. Since the front-facing parts of the surface do nothide each other, the patch is always visible unless when it isback-facing. The patch is called a totally visible/non-hiding patch.

If some of the homogeneous indicators within the fuzzy extent of thepatch are not one, the patch might be covering or be occluded by patchesof other surfaces at certain viewpoints in the current viewpointbounding box.

This is shown in FIG. 7B where the fuzzy-projection face FF₄ is shownwith each element having either the value 0, 1 or 2. As indicated forthe patches PT_(D) and PT_(F) and their corresponding fuzzy elementsFE_(D) and FE_(F), these are not totally visible and not hiding otherpatches as some of the fuzzy elements within their respective fuzzyextents are mapped to more than one surface. Patch PT_(E) is totallyvisible/non-hidden as all its fuzzy elements FE_(E) within its extentare mapped only to one surface (i.e. SU_(N)).

MODIFIED VISIBILITY FUZZY PROJECTION METHOD

The above technique scan-converts the fuzzy regions of each surfacetwice because each fuzzy element may be overlapped by the fuzzy regionsof several patches of the same surface. This can be avoided by using alinked list called the projected patch list to store the overlappedpatches for each fuzzy element. Other data structures such as an arraycan also be used in place of the linked list. The modified techniqueconsists of the following steps:

1. As the original technique, each fuzzy element contains a homogeneousindicator and a surface ID field. It also contains a projected patchlist. The homogeneous indicator and the surface ID fields areinitialized to zero and null respectively to indicator that no surfacehas been projected on the fuzzy element. The projected patch listassociated with the element is initialized to the null list.

2. Each patch contains a totally visible indicator. This indicator isinitialized to ON. Each patch in the environment is accessed. The fuzzyregion of each patch is computed and each element within it is accessed.

3. If the homogeneous indicator of each fuzzy element accessed is zero,the fuzzy element has not been projected onto by the fuzzy regions ofany surface. The surface ID of the current patch is written to thesurface ID field. The homogeneous indicator is set to one. If thetotally visible indicator of the current patch is ON, its ID is added tothe projected patch list of the current fuzzy element. Otherwise thereis no such necessity because the projected patch list is used to resetthe totally visible indicators of patches.

4. If the homogeneous indicator is one, the surface ID of the currentpatch is compared with the surface ID stored in the surface ID field ofthe current fuzzy element. If they are the same and the totally visibleindicator of the patch is ON, the ID of that patch is added to theprojected patch list associated with the current fuzzy element.

If the ID's of the two surfaces are different, the homogeneous indicatoris set to two to indicate that there is more than one surface projectingonto the current fuzzy element. The current patch and all the patcheswith ID's stored in the projected patch list of the current element maynot be totally visible. Therefore, their totally visible indicators areset to OFF. Records in the projected patch list can be removed after alltheir totally visible indicators have been updated.

5. If the homogeneous indicator is two, the current fuzzy element hasalready been found to be projected onto by more than one surface. Thecurrent patch therefore may not be totally visible. The totally visibleindicator of its record is set to OFF.

6. After the processing of all patches, a patch is determined to betotally visible if its totally visible indicator has not been set toOFF. The pseudo-code of the above processing is shown below:

    ______________________________________    initialize the totally invisible indicators of all patches to ON;    initialize the homogeneous indicator of all fuzzy elements to    zero;    clear all projected patch lists of the fuzzy elements;    for (each patch of the current surface)    do    for (each fuzzy element under the fuzzy region of the patch)    do    if (the homogeneous indicator is zero)    then            write the surface ID of the current patch to the              surface ID field;            set the homogeneous indicator to one;            if (the totally invisible indicator of the current patch is                not OFF)              add the patch ID to the projected patch list of the                fuzzy element;            endif    else if (the homogeneous indicator is one)              then                if (the surface ID of the current patch is                  the same as the surface ID stored in                  the fuzzy element)                then                  if (the totally invisible indicator of                    the current patch is not OFF)                    add the patch ID to the projected                    patch list of the fuzzy element;                  endif                else                  set homogeneous indicator to two;                  set the totally invisible indicator of the                    current patch and each patch                    indexed by the projected patch                    list of the fuzzy element to                      OFF;                endif                else                  set the totally invisible indicator                    of the current patch to OFF;                endif              done            done    ______________________________________

Use of the Visibility and Invisibility Methods for the Radiosity Methods

By the application of the foregoing methods, a list of the totallyinvisible patches and the totally visible/non-hiding patches can beobtained for a viewpoint group. The visibility of these patches remainsthe same for all the subgroups and viewpoints under that group.Therefore these patches need not go through elaborate visibilitycomputations in these subgroups and viewpoints.

For each viewpoint in the group, the totally invisible patches may beignored. The totally visible/non-hiding patches need not be comparedwith other patches to determine their visibility and form-factors. Theirform-factors can be computed directly from their orientations, positionsand shapes using mathematical formulas describing the radiative transferbetween surfaces.

If a patch is bright or close to the current group of viewpoints, thedirect form-factor computations need to be carried out in higheraccuracy. The patch can be subdivided into smaller patches and theform-factor computations are carried out for these sub-patches instead.Alternatively, accurate radiative transfer formulas such as the Nusselanalog technique can be used. This technique finds the fractional areaof the patch after it has been projected onto the surface and then thebase of a hemisphere whose center is at the viewpoint.

If accurate form-factor computations are not required, the form-factorof a patch for the current group of viewpoints may be obtained byassuming that it is constant throughout that patch. The standardform-factor equation can be simplified to:

    F=cos A*cos B*A/(πr*r)

where A and B respectively are the angles between the view vectors andthe normals of the observed patch, and the patch the viewpoint is on,and r is the distance between the viewpoint and the center of theobserved patch.

The fuzzy projection methods require orderly top-down traversal ofviewpoints according to their hierarchy. However, in techniques such asthe progressive refinement methods, the receiving patches are usuallyaccessed in decreasing order of their brightness. Therefore, if thesetechniques are used in conjunction with the fuzzy projection methods,the form-factor computations of some viewpoints in a group may not havebeen carried out since not all the viewpoints within the group may beprocessed in one go. Information about which are the totallyvisible/non-hiding patches and which are the totally invisible patchesof the partially completed group has to be stored in memory. Theoutstanding viewpoints in the group can then use this information whentheir turn to be processed has arrived. This information can be removedwhen all the viewpoints in the group have been processed.

In techniques such as the progressive refinement methods (known per se),the form-factors between patches have to be repeatedly computed.Therefore, if memory permits, the information about which patches aretotally visible/non-hiding and which patches are not totally invisiblemay not be removed and can be advantageously used.

In the first round of computations, all the fuzzy projection and normalhemicube computations for every receiving patch are carried out asrequired. During these computations, the emission patches at eachgroup/viewpoint are classified into three groups: totallyvisible/non-hiding, totally invisible, and the remainder. Thisclassification information is stored using data structures such asarrays or linked lists.

In subsequent rounds of computations, where the form factors betweenpatches have to be re-evaluated, the fuzzy projection computations arenot repeated. The totally visible/non-hiding and the totally invisiblepatches of each viewpoint can be simply retrieved from the storedinformation.

The memory for storing the classification of patches for each group ofviewpoints can be reduced by several methods. First, since patches foundto be totally visible/non-hiding or totally invisible from a group willmaintain the same status for all its subgroups, they need not berepeatedly stored.

Secondly, because the union of the three lists of patches is the set ofall the patches that need to be classified for each group of viewpoints,only two lists need to be stored for the group. To further reducestorage, the smallest pair of the three lists can be kept.

Also, because the records of patches are usually orderly organized andaccessed, the patch IDs in the lists usually have some order. Thedifferences between the IDs of successive patches in the lists are oftenmuch smaller than the magnitude of these IDs. Whenever this occurs,these differences instead of the patch IDs can be stored. A sign bit canbe used to distinguish between the ID's and difference values. The listcan be sorted by the ID for more efficient use of this arrangement.

Finally, the visibility status of patches often does not change muchfrom one group of viewpoints to an adjacent group of viewpoints.Therefore, using the patch lists of a viewpoint group as a startingpoint, a series of nearby groups can store their patch listsincrementally. Starting from the first group, each adjacent group onlyneeds to store the lists of patches that need to be deleted from, andadded to the patch lists of the previous group to form the currentlists. Again, a special field can be used to distinguish the use of thisarrangement.

ENHANCING THE ACCURACY OF FORM-FACTOR COMPUTATIONS

The fuzzy projection techniques can also be used to achieve optimalaccuracy of the form-factor computations. After the filtering off oftotally invisible patches by the invisibility techniques the visibilitytechnique detects totally visible and non-hiding patches. As mentionedabove, different methods which yield different accuracy in thecomputations of the form-factors of these patches can be applied.

The remaining patches are not totally invisible. They are also nottotally visible/non-hiding. The accuracy of their form-factorcomputations can be determined by the following steps:

a. First, several levels are defined such that each of them correspondsto a level of accuracy to be reached by the form-factor computations ofpatches. Each accuracy level determines the strategies of form-factorcomputations such as the resolution of the hemicube buffer, the level ofdetails of patches, whether to use ray-tracing instead of the hemicubebuffer, or the number of rays traced per sampling point.

b. All the patches not found to be totally invisible or totally visibleare classified by their accuracy level according to their brightness,importance, distance from the current group of viewpoints, and otherproperties. Each patch record has a field which stores its accuracylevel. An accuracy level field is also allocated for each fuzzy elementin the fuzzy buffer. Each field is initialized to the lowest accuracylevel.

c. Patches are accessed in the order such that those having higheraccuracy levels are scan-converted first.

For each patch accessed, the same scan-conversion of their fuzzy extentsapplied in the visibility fuzzy projection computations is carried out.However, instead of the homogeneous indicators, the accuracy levelfields in each fuzzy element access is examined. If the value in a fieldis larger than the accuracy level of the patch, the patch is likely tobe hiding or be hidden by a patch at a higher accuracy level. Theaccuracy level of the patch is set to this value. If the value issmaller than the original accuracy level of the patch, the later iswritten to the former.

d. After the processing of all patches, the updated accuracy level ofeach patch shows the maximum level of accuracy to which its form-factorcomputations needs to be carried out for the current group ofviewpoints. If this level is higher than the accuracy the patch canprovide, it may be recursively subdivided and replaced by sub-patcheswhose accuracy matches the level.

If the actual surface of a patch is curved, the projections of itssub-patches may be outside its projection. Therefore, for thesubdivision strategy to be effective, the fuzzy extent of each entityshould contain the fuzzy extents of all its sub-entitles during all thefuzzy projections. It can be approximated by the fuzzy extent of theaxis-aligned bounding box containing all these sub-entities.

e. The accuracy level field of a fuzzy element indicates the accuracy ofthe computations that needs to be carried out in the correspondingviewing directions from the current group of viewpoints or thecorresponding regions on the hemicubes of these viewpoints. Theform-factor of a patch can be computed in variable resolutions whichmatch the different accuracy requirements of the fuzzy elements coveredby that patch. This can be done in either the ray-tracing or thehemicube approach of form-factor computations.

f. In the ray-tracing approach, the form-factors of patches at aviewpoint are computed by tracing rays in all observable directions. Foreach of the current group of viewpoints, the number of rays to be firedwithin a solid angle associated with a fuzzy element depends on theaccuracy level of that element. If the level is high, more than one rayshould be traced. Conversely, if the accuracy levels of several adjacentfuzzy elements are low, only one ray may be traced for the directionsassociated with these elements.

g. In the hemicube approach, different regions on the hemicube shouldhave different sampling resolutions which match the accuracyrequirements of the fuzzy elements associated with these regions. Thiscan be achieved by the use of a pyramidal representation called thehemicube pyramid. The scan-conversion of patches on the hemicube pyramidis described below in sub-section headed Scan-Conversion of Patches onthe Hemicube Pyramid.

Use of the Visibility and Invisibility Methods for Hidden SurfaceComputations

In this embodiment a method is provided to apply the computed results ofthe visibility and invisibility fuzzy projection methods in the hiddensurface computations.

In shadow computations, in applications where a series of images are tobe taken, such as computer animation, flight simulation, or dynamicgraphics, the hidden surface removal operations need to be repeated manytimes. The position of the viewer when an image of the surrounding istaken may be treated as a viewpoint. The viewpoints may also be combinedinto a hierarchy of viewpoint groups.

If the combined field of view of the current viewpoint group is narrow,the projection boxes and the fuzzy projection box can be flattened sothat only a fuzzy projection plane and its associated projection planesare active for the current group of viewpoints.

By using the invisibility fuzzy projection methods patches found to betotally invisible to a group of viewpoints, do not need to be consideredfor the subgroups and the individual viewpoints in the group.

By using the visibility fuzzy projection method no depth computationsand comparisions of totally visible patches during the scan-conversionare necessary.

Use of the Visibility and Invisibility Methods for the Ray TracingComputations

In this embodiment a method is provided to apply the computed results ofthe visibility and invisibility fuzzy projection techniques in the raytracing techniques.

In a ray tracing application, the objects and surfaces in theenvironment are often organized as a hierarchical geometric model. Ifthe number of rays traced from a node of the geometric model justifiesthe use of the fuzzy buffer methods, a viewpoint group is created bytreating every point on the surfaces of that node where a ray might emitas a viewer. The position of the viewer at any instance of time is aviewpoint. The viewpoints can be grouped into a hierarchy of viewpointgroups.

From the fuzzy buffer computations, patches which are totallyvisible/non-hiding to a group of viewpoints corresponding to each nodeand patches which are totally invisible to this group of viewpoints.

When a ray is traced from a node, all the totally invisible patches neednot be considered. Also, the ray is tested first with the totallyvisible/non-hiding patches. If the ray hits one of those patches, nofurther testing with other patches need to be carried out as the patchbeing hit is the closest one on the path of the ray.

If both the radiosity method and the ray tracing techniques are used,the results of the fuzzy buffer computations can be used for bothmethods.

USE OF THE VISIBILITY AND INVISIBILITY FUZZY PROJECTION TECHNIQUES INCOMPUTER VISION

The visibility and invisibility fuzzy projection techniques can be usedin computer vision. The occlusion analysis of objects is a vitaloperation in computer vision. Based on this analysis, hypotheses aremade to construct a 3D model. This model is then matched with the visiondata or existing models. It may be repeated matched and refined until itis acceptable. Usually there is a lot of uncertainty and vagueness inthe vision data and the hypothesis. Such imprecision can be accommodatedby the present techniques in the following ways:

1. During the model construction phases, a viewpoint bounding box can bedefined which includes all the likely positions of the viewpoint.

2. During the model construction phase, a 3D model is generated based onthe vision data. However, if the exact locations and shapes of entitiessuch as edges and patches are uncertain, the entities may beapproximated by the bounding boxes which contain all their likelylocations.

3. Based on the hypothesized model, the invisibility and visibilitytechniques are carried out to compute totally visible surfaces, totallyinvisible surfaces and surfaces whose visibility cannot be determined.

4. The totally visible surfaces correspond to the vision data whoseinformation is relatively explicated. Such data may be treated assuccessfully interpreted or more cursorily checked. Areas on the fuzzyprojection box which are projected onto by surfaces whose visibilitycannot be determined correspond to the vision data which are moreobscured. The areas on the image plane corresponding to these areas arefurther analysed.

5. In the next round of analysis, the hypothesis becomes more refined.The viewpoint bounding box and bounding boxes of entities may beaccordingly shrunked.

The preferred embodiment has been implemented on a general purposecomputer adapted via programming in the C-language and tested using aset of models which differ in depth complexity. Three of the models areshown in FIGS. 13A, 13B and 13C. The visible surface computations havebeen computed for five nearby viewpoints. The times of hidden surfacecomputations under different pixel and patch resolutions have beenmeasured and are shown below.

EXAMPLE 1

Coarse patches, coarse screen pixels (400×400 pixels), resolution offuzzy buffer: 400×400 pixels

    ______________________________________    Normal Hidden  Fuzzy Hidden    Surface Removal                   Surface Removal          CPU time         CPU time        Patchs          for 5            for fuzzy                                   CPU time                                           invisible          viewpoints                   Total   computa-                                   for 5 view-                                           to all    Model (sec)    Patches ions(sec)                                   points(sec)                                           viewpoints    ______________________________________    1 room          11.2     10807   1.2     11.1    157    2 room          21.8     19137   2.1     17.3    3942    3 room          35.7     27467   2.9     23.9    9041    4 room          46.3     35797   3.6     25.6    16140    ______________________________________

EXAMPLE 2

Coarse patches, fine screen pixels (1000×1000 pixels), resolution offuzzy buffer: 400×400 pixels

    ______________________________________    Normal Hidden  Fuzzy Hidden    Surface Removal                   Surface Removal          CPU time         CPU time        Patchs          for 5            for fuzzy                                   CPU time                                           invisible          viewpoints                   Total   computa-                                   for 5 view-                                           to all    Model (sec)    Patches ions(sec)                                   points(sec)                                           viewpoints    ______________________________________    1 room          20.7     10807   1.2     20.7    157    2 room          40.8     19137   2.1     32.4    3942    3 room          56.4     27467   2.9     37.8    9041    4 room          72.9     35797   3.6     40.0    16140    ______________________________________

EXAMPLE 3

Fine patches, coarse screen pixels (400×400 pixels), resolution of fuzzybuffer: 400×400 pixels

    ______________________________________    Normal Hidden  Fuzzy Hidden    Surface Removal                   Surface Removal          CPU time         CPU time        Patchs          for 5            for fuzzy                                   CPU time                                           invisible          viewpoints                   Total   computa-                                   for 5 view-                                           to all    Model (sec)    Patches ions(sec)                                   points(sec)                                           viewpoints    ______________________________________    1 room          25.0     21263   2.0     24.1    1605    2 room          41.1     38293   2.5     25.0    15301    3 room          60.6     55323   3.4     29.1    28712    4 room          80.7     72353   4.6     33.8    42103    ______________________________________

EXAMPLE 4

Fine patches, fine screen pixels (1000×1000 pixels), resolution of fuzzybuffer: 400×400 pixels

    ______________________________________    Normal Hidden  Fuzzy Hidden    Surface Removal                   Surface Removal          CPU time         CPU time        Patchs          for 5            for fuzzy                                   CPU time                                           invisible          viewpoints                   Total   computa-                                   for 5 view-                                           to all    Model (sec)    Patches ions(sec)                                   points(sec)                                           viewpoints    ______________________________________    1 room          42.0     21263   2.0     40.5    1605    2 room          75.9     38293   2.5     45.4    15301    3 room          111.3    55323   3.4     53.8    28712    4 room          148.3    72353   4.6     61.9    42103    ______________________________________

The above results indicate that the overhead of the preferred embodimentis low. It also indicates that substantial computation savings can beachieved when the depth complexity of the models is high.

There are a number of advantages to be gained by applying the strategiesin the disclosed embodiments. Firstly, they do not have the restrictionsencountered by the earlier hidden surface algorithms. For example, theydo not preclude the presence of intersecting surfaces or patches in theenvironment. In addition, surface patches can be curved and the sceneneed not be static. The method also has very little computationaloverhead. Because it operates on a z-buffer, it can be easilyimplemented in hardware.

The preferred embodiment can be further enhanced using heuristics. Inapplications such as the interactive walkthrough of the interior of abuilding, the surfaces most likely to form large crisp (non-Fuzzy,umbra) regions are those representing walls, floors and ceilings.Therefore, only the crisp regions of these surfaces need to bescan-converted to the fuzzy buffer.

In addition to reducing hidden surface removal computations, thepreferred method can also be used in the radiosity method. Currently theradiosity method is very slow, mainly because it needs to compute thevisibility of surfaces for a large number of surface points to determinethe form-factors. However, by grouping these points and treating them asgroups of viewpoints, the preferred embodiment can be used to determinesurfaces totally visible to a group of these points. The fuzzycomputations for each viewpoint bounding box are apportioned among allviewpoints in the box. Because there would be a viewpoint for everysurface point, the density of viewpoints in each viewpoint bounding boxcould be very high. Therefore, the advantage of using the method in theradiosity method can be more than in the normal hidden surface removal.

The methods disclosed can also be used in virtual reality applicationsand other applications where abstract data is utilized. In the futuresuch an application could need to display complex and dynamicenvironments in real time using the radiosity method. With the additionof a time dimension, the density of viewpoints in each viewpointbounding box could be an order of magnitude higher than that of theradiosity method. Consequently, the methods disclosed couldsubstantially speed up these applications. Other applications includethe manipulation of physical data suc as the generation, processing anddisplay of scientific data such as energy spectra data.

The foregoing describes only a number of embodiments of the presentinvention and modifications, obvious to those skilled in the art, can bemade thereto without departing from the scope of the present invention.

The Detection of Patches Front-Facing to a Viewpoint Bounding Box

Referring to FIG. 2, whether a patch PT is facing a viewpoint VP can bedetermined by the angle A between the normal N of the patch PT and theview vector VV. The latter is the vector from the viewpoint VP to thecenter of the patch PT The cosine of the angle is: ##EQU1## where VP=(x,y, z) is the position of the viewpoint, N=(Nx, Ny, Nz) is the unitnormal of the patch, and PO=(x', y', Z') is the position of the patchcentre. k is a positive coefficient which turns the view vector(VV=PO-VP) into a unit vector.

If the patch PT is facing the viewpoint bounding box BB, the angle Amust be obtuse. Hence cosine A must be negative for every possibleviewpoint VP in the box. To check this, the maximum value of the cosineof A is found. If it is positive, then the patch would be back-facing tocertain viewpoints in the bounding box.

Since PO and N are constant vectors, the maximization of cosine Arequires each of Nx x, Ny y and Nz z to be minimized. Depending on thesigns of the components of N, either the maxima or the minima of x, yand z are used. These coordinates correspond to the locations of thecorners of the current viewpoint bounding box.

If a patch moves or rotates over time and the viewpoint bounding boxcontains viewpoints at different times, then the smallest cosine A ateach instance of time may be computed and the smallest of them chosen.

Patches with bounding volumes inside or intersecting the viewpointbounding box are always treated as not front-facing. These patches canbe detected by an initial bounding volume check.

FIG. 11A shows a cut-plane view of a surface region SU_(R) front-facinga set of viewpoints VP₇, VP₈, VP₉ and FIG. 11B shows the same surfaceregion front-facing to a viewpoint bounding box BB_(R). Since thefront-facing-patches PT_(F) are facing all possible viewpoints in thebox BB_(R), the region SU_(R) never curves back and is always facingthese viewpoints. The view projections of the border of the regionSU_(R) therefore always enclose its projection. This property can beused in subsequent fuzzy projection computations.

FIGS. 12A-12C show cut-plane views of projections of surface regionsfront facing to a group of viewpoints and their respective boundingboxes.

In FIG. 12A if all patches PT_(A) in a surface region are front facing,the projections BP_(A) of the boundary edges of the region alwayssurround the projection PE_(A) of that region.

In FIG. 12B if some surface patches PT_(B) in a surface region are notfront facing, the region may curve back. The projections BP_(B) of theboundary edges of the region may be inside the projection PE_(B) of thatregion.

In FIG. 12C the projection BP_(C) of the boundary of each front-facingregion of a convoluting surface still encloses the projection PE_(C) ofthe region.

The Computation of the Fuzzy Extent of Boundary Edges and Patches

As shown in FIG. 2, the projection coordinates PR (X,Y) of a point PO(x',y',z') to a viewpoint VP (x,y,z) on the projection plane PP facingthe positive z direction is

    X=(x'-x)*d/(z'-z)                                          (1)

    Y=(y'-y)*d/(z'-z)                                          (2)

where d is the shortest distance from the viewpoint to the projectionplane facing the z direction.

To maximize X and Y, the minimum values of x and y are used. If X and Yare to be minimizes the maxima of x and y are used. Since z is part ofthe divisors, whether to use its maximum or minimum value depends on thesigns of (x'-x) and (y'-y) after choosing the extreme values of x and y.Since the edges of the viewpoint bounding box are parallel to the axes,viewpoints having these extreme x, y and z values are at the corners ofthe box.

According to equations (1) and (2), the points which have the extremevalues in x', y' and z' would yield the maximum and minimum projections.However, these points might not be on the current projecting entity,which can be a boundary edge or a patch.

To overcome the problem, the bounding volume of the entity is used toapproximate that entity. Its projections can be used as an estimation asthey enclose the projections of that entity.

Sometimes an entity may be subdivided into sub-entities. Its positionand shape may also be non-static over time or uncertain. Hence thebounding volume of an entity should be a volume that encloses all thespace it is likely to occupied, and all the bounding volumes of itssub-entities that are likely to be considered.

Hence the bounding volume of an entity should enclose all itssub-entities that are likely to be considered in the computations.

Following the derivations above, the maxima of x' and y' and the minimaof x and y are used to maximize the projections. Whether to maximize orminimize (z'-z) depends on the signs of (x'-x) and (y'-y). If theseterms are positive, the term should be minimized. Hence the smallest z'and the largest z are used. Otherwise, the largest z' and the smallest zare instead chosen.

The finding of the minimum projections is the opposite of maximization.Hence the decisions to minimize or to maximize the individual terms areaccordingly changed.

Having obtained the projections which give the maximum and minimum X andY values, these projections are mapped to the fuzzy projection plane FPwhose normal is toward the z direction.

A rectangle on the plane with these projections as corners and withedges parallel to the edges of the corresponding fuzzy projection faceFF can be defined. They are either rounded up or down to create anotherregion which contains the original rectangle and all the pixels underit. This is the fuzzy extent EF of the patch on the fuzzy projectionplane FP.

By rotating the axes, the same equations (1) and (2) can be used forprojection planes facing other directions if the terms in equations (1)and (2) are accordingly permuted. The fuzzy extents corresponding tothese planes can then be similarly obtained.

If a patch is within the viewpoint bounding box, then for someviewpoints z' is smaller than or equal to z in equations (1) and (2).The fuzzy extents would then extend to infinity in the directions whichcan be determine by the signs of the denominators and numerators inthese equations.

The Computation of the Non-Fuzzy Regions

To compute the non-fuzzy region, it is first necessary to obtain itsrelationship with the fuzzy boundary region and one of the projectionregions.

Consider two viewpoints in the current viewpoint bounding box and apoint on a fuzzy projection plane. Assume that the projection of thefront-facing sub-surface at one viewpoint maps on that point and at theother viewpoint does not map on that point.

Because the change of projection status can only occur at theprojections of boundary edges, on a curve joining the two points theremust exist another viewpoint such that the projection of a boundary edgefrom it would map on the same point on the fuzzy projection plane. Sincethis curve can be totally inside the current viewpoint bounding box,that point must be within the fuzzy region of the boundary edges forthat bounding box.

If a point on a fuzzy projection plane is within the mapping of aprojection region of the front-facing sub-surface, and if it is outsidethe fuzzy region of the boundary edge, then the point is always withinthe projection regions of the sub-surface for all the viewpoints in thecurrent viewpoint bounding box. The point is by definition inside thenon-fuzzy region. Since the fuzzy boundary region is always within thearea containing the fuzzy extents of boundary edges, the point is stillinside the non-fuzzy region if the former is approximated by the latter.

Based on the above, the approximated non-fuzzy region can be obtained byfinding the projection region of the front-facing sub-surface from aviewpoint in the current viewpoint bounding box projecting it to thefuzzy region, and subtracting all its area intersected with the fuzzyextents of the boundary edges. A modified scan line algorithm may beused for this task.

First, an arbitrary viewpoint in the current viewpoint bounding box isselected. Usually the center of the bounding box is chosen. Thisviewpoint is called the chosen viewpoint. The projection coordinates ofthe edges in the front-facing sub-surface from this viewpoint are found.Since the projection coordinate system and the fuzzy projectioncoordinate system have one-to-one mapping, the mapping of the former tothe latter is trivial.

This is followed by the computations of the fuzzy extents of the patchesdescribed below in sub-section headed The Computation of the FuzzyExtent of Boundary Edges and Patches.

An illustration of such an arrangement is shown in FIG. 8A where twopatches A and B intersect a scan line SL and have respective fuzzyextents EF_(A) and EF_(B) of their boundary edges.

Two active edge lists are maintained during the processing of scanlines. The first list contains the active edges of the patches. Thesecond list contains the pairs of active vertical edges of the fuzzyextents of boundary edges.

In FIG. 8A, the first active edge list is:

A1 A2 B1 B2

the second active edge list is:

E1 E2 E3 E4

During the processing of successive scan lines, entries in the list areadded when they become active in the current scan line. They are deletedfrom the list when the last scan lines in which they are active havebeen processed.

A scan line array with as many elements as the number of horizontalelements in the current fuzzy array is maintained. Each element of thearray contains a depth field and a boolean field called the overlapindicator. The depth field is used to store the depth of the patch whosefuzzy extent surrounds the fuzzy element. The overlap indicatorindicates whether the element is under the non-fuzzy region. The depthfields are initialized to negative infinity. The overlap indicators areset to zero.

The pairs of edges in the first active edge list are then processed. Thespan of each pair of these edges represents the segment of a patch inthe current scan line. The overlap indicators of the elements within thespan are set to one. The value stored in the depth field of each ofthese elements is compared with the depth of the patch with respect tothe chosen viewpoint. It may be approximated by the maximum depth fromthe viewpoint to the patch or the patch bounding box. If the former issmaller, it is replaced by the latter.

The computation of the segments of patches requires the finding of theintersections between the current scan line and the active edges. Thiscomputation can be avoided by using the leftmost or rightmost positionof each edge depending on whether it is at the left or right side of thespan. This inaccuracy is allowed because it is always offset by thefuzzy extents of the boundary edges.

The pairs of active edges in the second active edge list are thenaccessed. The span of each pair represents the segment of the fuzzyextent of a boundary edge in the current scan line. All the overlapindicators of the elements within the span are reset to zero.

After all the records in the active edge lists have been processed, theelements in the scan line array where the overlap indicators are one arewithin the segment of the non-fuzzy region in the current scan line. Thedepth fields contain the maximum possible depth of the region in theviewing directions represented by these elements.

The depth stored in each element of the array is compared with the depthfield of the corresponding element in the fuzzy buffer. If the latter islarger, it is replaced by the former.

Returning to the Figs., FIG. 8B shows the scan line array afterscan-conversion of the active edges of patch A. FIG. 8C shows thescan-conversion of the active edges of patch B. FIG. 8D shows the scanline array after the elements within the fuzzy extents EF_(A) and EF_(B)of the boundary edge have been reset.

The Scan-Conversion of the Fuzzy Regions

To obtain the fuzzy regions, a modified scan line algorithm to that ofAppendix 3 is used.

An active edge list is maintained during the processing of scan lines.The list contains pairs of vertical edges of the fuzzy extents ofpatches active in the current scan line. During the processing ofsuccessive scan lines, entries in the list are added when they becomeactive in the current scan line. An entry is deleted from the list whenthe last scan line it is active has been processed.

For the arrangement of FIG. 9A (similar to FIG. 8A, but for fuzzyregions), the active edge list is:

E1 E2 E3 E4.

A scan line array with as many elements as the number of horizontalelements in the current fuzzy array is maintained. Each element of thearray is a boolean field called the overlap indicator which indicateswhether the element is under the fuzzy region.

For each scan line, the entries in the active edge list are accessed.The span between each pair represents the segment of the fuzzy extent ofa patch in the current scan line. All the overlap indicators of theelements within the span are set to one.

After the processing of the entries in the active edge list. The arrayelements whose overlap indicators are one now contain the segment of thefuzzy region in the current scan line.

FIG. 9B shows the state of the scan line array after the elements withinthe fuzzy extent EF_(A) of patch A have been updated.

FIG. 9C shows the state of the scan line array after the elements withinthe fuzzy extent EF_(B) of patch B have been updated.

Using a Cache to Speed up the Access and Writing of Fuzzy ElementsWithin the Fuzzy Extent of a Patch

The fuzzy buffer methods described herein require the reading andwriting of the fuzzy elements within the fuzzy extent of each patch.Since there are usually substantial overlaps between the fuzzy extentsof adjacent patches, the access and update of these elements can bereduced by storing their information in high speed cache.

The cache may be in many forms. One example, shown in FIG. 10 is to usea cache buffer CB and two cross-reference tables CR₁ and CR₂. The cachebuffer CB is a 2D array, in which each element contains fields which arethe mirror of the fields on a fuzzy buffer element that need to be reador written. The cross-reference tables CR₁ and CR₂ respectively containas many elements as the number of rows and columns in the 2D array.Depending on the array it is in, each element in the table containseither a row (CR₁) or a column (CR₂) field which is used tocross-reference the rows and columns of the 2D array with the rows andcolumns of the current fuzzy array FA. For each element in the cache,the cross-reference tables CR₁ and CR₂ contain a reset switch toindicate whether it has been reset.

Initially, all the reset switches are initialized to one. The centre ofthe cache buffer CB is mapped to the center of the fuzzy extent of thefirst patch to be read. After the fuzzy elements within the fuzzy extentof the first patch are read, information in these elements are stored inthe cache buffer CB elements according to the mapping. The mappings ofrows and columns in the cache are updated into the cross reference tableCR₁ and CR₂, respectively. The reset switch in the updated elements inthese table and the cache buffer CB are set to zero.

Before reading the fuzzy elements within the fuzzy extent of the secondpatch, data in the cache buffer CB is first read. If an element hasalready been stored in the cache buffer CB, no access to the cachebuffer CB to obtain its information is necessary.

To maximize the efficiency of the cache, any adjacent patch is accessedfirst. After the processing of a series of patches, there may be a patchwhose mapping covers the boundary of the cache. The affected rows orcolumns are wrapped around. The rows at the opposite edges become thenext rows or columns for the patch.

Before the writing of the patch data into the cache buffer CB, eachelement in the cross-reference table CR₁ and CR₂ within the rows of thecolumns of the current patch mapping are checked. If the reset switch ison or if the mapping value conforms to the current mapping, the wholerow or column of cache elements have not been used and there is noproblem in using them. Otherwise, the row or the column needs to bereclaimed. The original data in the whole row or column of cacheelements are written back to the fuzzy buffer and then initialized. Theaffected element in the cross-reference table is updated with the newmapping. After that, the patch data can then be written into thesenewly-reclaimed cache elements.

The writing from the cache buffer CB to the fuzzy buffer can beperformed in burst mode. Hence when such task occurs, several adjacentrows or columns of the cache elements may be written to the fuzzy bufferand re-initialized even though some of the elements may not need to bere-claimed.

Direct Computation of the Fuzzy Region of an Edge

Assume that the equation of the edge is expressed as:

    x=az+b                                                     (1)

    y=cz+d                                                     (2)

2. Assume that all the coordinates of a viewpoint P in the currentviewpoint bounding box is (X0,Y0,Z0).

3. The image projection of a point T (x,y,z) on the edge with respect toP is ##EQU2##

4. Since (x,y,z) and (x0,y0,z0) are uncertain, the region comprising allpossible values of (X,Y) forms an area which is the fuzzy region of theedge.

5. By substituting (2) into (4) and rearranging, ##EQU3##

If Y is known, the extrema of z can be found by substituting theappropriate extrema of y0 and z0 into the above equation. All points onthe edge having z within these extrema could project at Y fromviewpoints in the current viewpoint bounding box.

6. substituting (1) into (3), ##EQU4##

Notice that in (6) there is no local extremum of X for changing z. Henceby assigning the extrema of z found from section 5 and the appropriateextreme values of x0 and z0 into (6), the two extrema of X can be found.These values correspond to the maximum and minimum possible X for aparticular value of Y.

7. A scan line approach can be used to approximate the fuzzy region ofthe edge. Substituting (2) into (4) and rearranging, ##EQU5##

By assigning the appropriate extreme values of z, y0 and z0 into (7),the maximum and minimum values of Y are obtained. These values arerounded up and down respectively to cover all scan lines the edge mayproject onto. Each of these scan lines corresponds to a value of Y. Fromsection 5 and 6, the maximum and minimum of X can be found. The areawithin these values is the scan line segment of the fuzzy region of theedge. The corresponding segment of the expanded fuzzy region of thatedge is the further rounding of the segment to fully cover all the gridcells it projects cover.

The above technique computes the expanded fuzzy regions byscan-converting the segments of the regions on the X scan lines. Foredges more horizontal than vertical, the expanded fuzzy regions may bemore accurately computed by scan-converting the segments of the regionson the Y scan lines.

This is shown in FIG. 14 where the fuzzy region takes on a scan-lineshape about the fuzzy region of the edge. This is substantially smallerthan the fuzzy extent of the edge.

SCAN-CONVERSION OF PATCHES ON THE HEMICUBE PYRAMID

This appendix describes an efficient technique for scan-converting apatch on a plane which contains cells with different resolutions. It canbe used to compute the form-factor of patches in the radiosity methodwith or without the use of the fuzzy projection techniques.

The technique uses a data structure called the hemicube pyramid. Eachlevel of the pyramid contains a set of 2D arrays. Each array correspondsto a level and a projection face. Each element of the array correspondsto a pixel on the plane. Note that the hemicube may be a prism ratherthan a cube and not all its planes need to be active.

An element in the array is called a pyramid element. In addition to theinformation needed in an original hemicube element, it contains ansub-division indicator and a pointer. The sub-division indicator isinitially set to OFF. The indicator becomes active if its level is lessthan the required accuracy level of patches projected onto it.

The pointer is used to link a pyramid element with one of the pyramidelements at the higher accuracy level and within its region. To enablemore accurate sampling, the elements to be linked are usually chosensuch that an element accessed by the pointers from an element at thelower accuracy level is as close to the center of the latter aspossible.

The organizaton of the hemicube pyramid corresponding to a face of thehemicube is shown in FIG. 15.

After the initialization of the hemicube pyramid, patches are accessedin decreasing order of accuracy and scan-converted to the hemicubepyramid. This order of access ensures that patches are scan-converted inresolutions equal to or finer than their own optimal projectionresolutions and the optimal projection resolutions of patches they mightocclude.

For each projecting patch, the hemi-cube projection resolutioncorresponding to its accuracy level is found. Each hemicube pyramidelement belonging to that resolution and under the projection of thatpatch is accessed.

If the accessed element is already at the most accurate level, or if itssub-division indicator is not on, the ID of the current patch is writteninto the current element if that patch is closer than the so-far closestpatch stored in the element, as in the normal hemicube scan-conversion.If this update occurs, all the ancestors of the current element untilthe element whose sub-division indicator has already been set to on areaccessed. The sub-division indicator of each accessed element is set toon.

Note that the recursive access of ancestor elements can instead becarried out for all elements under the patch projection immediatelyafter they have been found. However, if the possibility that patches areinvisible is high, carrying out the recursion after determining that thepatch is closer is more efficient as it does not need to be applied onelements if that patch is hidden.

If the sub-division indicator of the current element is ON, patchesrequiring more accurate form-factor evaluation have been projected ontothe element. Therefore, each of its daughter elements under theprojection of the current patch is accessed and the above computationsare repeated.

After the scan-conversion of all projecting patches, the elements in allthe levels are scanned. From the projection information stored in theseelements, the form factors of the patches are computed.

If highly accurate form-factor computations and hence very highhemi-cube resolutions are required, relatively large amounts of memoryare needed to store the hemi-cube arrays. The initialization andscanning of these arrays for form-factor accumulation is also costly.

Since patches requiring very fine projections are relatively few, theabove problem can be overcome by using sparse matrices to store active(sub-divided) elements corresponding to high resolution levels. Eachmatrix is a one-dimensional array. Active elements are stored in it atpositions determined by a hashing function parameterized by pixelpositions.

High accuracy form-factor computations can also be achieved usingray-tracing in conjunction with hemicube computations. All the patchesare still scan-converted to the hemicube pyramid or the normal hemicube.However, the scan-conversion of patches requiring high accuracy in

REFERENCES

1. Aggarwal J. K., "Dynamic Scene Analysis," in "Image SequenceProcessing and Dynamic Scene Analysis," Huang, T. S. (Eds,) 1981,Springer-Verlag, pp. 40-73.

2. Appel A. "The Notion of Quantitative Invisibility and the MachineRendering of Solids", Proc. of the ACM National Conference, 1967,Thompson Books, Washington D.C., pp.387-393.

3. Baum, D. R., Rushmeier H. E., Winget J. M., "Improving RadiositySolutions through the use of Analytically Determined Form-factors",Computer Graphics, Vol 23 Number 3, 1989, pp. 325-334.

4. Bradler, N., Tsotsos, J. K., (Eds) "Motion: Representation andPerception," North-Holland, 1986.

5. Catmull, E. "A Subdivision Algorithm for Computer Display of CurvedSurfaces", PhD Thesis, Report UTEC-CSc-74, Universitv of Utah, 1975.

6. Chang, S. S. L., Zadeh, L. A., "On Fuzzy Mapping and Control," IEEETransactions on Systems, Man, and Cybernatics, Vol.SMC-2, No. 1, January1972, pp. 30-34.

7. Cohen, M. F., D. P. Greenberg, "The Hemi-Cube: A Radiosity Solutionfor Complex Environment," SIGGRAPH 85, pg. 31-40.

8. Cohen, M. F., Chen, S. E., Wallace, J. R., Greenberg, D. P., "AProgressive Refinement Approach to Fast Radiosity Image Generation,"SIGGRAPH 88, pg. 75-84.

9. Crocker, G. A., "Invisibility Coherence for Faster Scan-Line HiddenSurface Algorithms," SIGGRAPH'84, pp. 315-321.

10. Fournier, A., Fussell, D., "On the power of the Frame Buffer,", ACMTransactions of Graphics, April 1988, pp. 103-128.

11. Fuch, H., Kedem, Z., Naylor, B. F., "On Visible Surface Generationby A Priority Tree Structures," SIGGRAPH'80, pp. 124-133.

12. Gordon, D., "Front-to-Back Display of BSP Trees," IEEE CG&A,September 1991, pp. 79-85.

13. Haines, E. A., Wallace, J. R., "Shaft Culling for EfficientRay-Traced Radiosity," unpublished paper, July 1991.

14. Hornung, C. "A Method for Solving the Visibility Problem", IEEEComputer GRaphics and Applications, July 1984, pp.26-33

I claim:
 1. A method of reducing the complexity of visibilitycalculations required for the production of multi-dimensional computergenerated images, said method performed on a computer, said methodcomprising the steps of:prior to an occlusion or invisibilityrelationship computation being carried out on a plurality of surfacesfrom selected viewpoints to be calculated, said viewpoints are dividedinto groups; for selected ones of said surfaces, determining for eachsaid group whether each said selected surface is(a) an always occludedsurface, an always hidden surface, or a remaining surface; or (b) analways unoccluded surface, or a remaining surface; or (c) an alwayshidden surface, or a remaining surface; wherein said remaining surfaceis a surface which is unable to be determined with certainty as towhether it is either unoccluded or hidden; exempting from said occlusionor invisibility relationship computation those surfaces which are eitheralways unoccluded or always hidden; maintaining a record of saidremaining surfaces; and carrying out occlusion or invisibilityrelationship computations on said remaining surfaces; whereby theproduction of multi-dimensional computer generated images isfacilitated.
 2. A method as claimed in claim 1, wherein the maintainingstep comprises updating a previous record.
 3. A method as claimed inclaim 1, wherein the maintaining step comprises creating a new record.4. A method as claimed in claim 1, wherein said images are selected fromthe group consisting of graphic images, computer vision data, abstractdata and physical data.
 5. A method as claimed in claim 1, wherein thereduction in complexity involves a reduction in the number and/orduration of visibility calculations.
 6. A method as claimed in claim 1,wherein the visibility calculations form part of a series of radiositycalculations.
 7. A method as claimed in claim 6, wherein the exemptingstep involves the direct computation of said unoccluded surfaces.
 8. Amethod as claimed in claim 1, wherein one or more of said surfaces aresub-sets of a primary surface.
 9. A method as claimed in claim 1,further comprising the following steps performed with respect toselected ones of said surfaces:(6) determining the combined projectionof said selected ones of said surfaces and determining the combinedprojection of the boundary edges of said each selected surface; (7)subtracting from the combined surface projection the combined boundaryedge projection to form an umbra region of said each selected surface;and (8) carrying out said occlusion or invisibility relationshipcomputations on said umbra regions and said combined projection of saideach selected surface.
 10. A method as claimed in claim 9, wherein theextent of the boundary area is coincident with a scan-linerepresentation of any of said selected surfaces.
 11. A method as claimedin claim 9 or 10, wherein the combined projection of said selected onesof said surfaces is replaced with a projection area of the selected onesof said surfaces from a viewpoint in said group.
 12. A method as claimedin claim 11, wherein said calculations are further simplified bydetecting, and not carrying out an occlusion or invisibilityrelationship computation for, surface areas which are totally hidden asa consequence of their depth from the current group of viewpoints andthe presence of nearby surface areas of lesser depth when viewed fromthe current group of viewpoints, said detecting of said totally hiddensurface areas comprising the steps of:for each range of viewingdirections related to said group of viewpoints allocating a depth planeto the projection surface of the corresponding surfaces in that viewingdirection, each element of the projection surface having a plurality ofdepth values associated with the viewpoints in the group viewing thecorresponding surface area; for each surface area selecting the depthvalue for each element and storing same to define the depth values ofthe projection surface, thus representing the depth value of the umbraregion; similarly determining the depth value of the combined surfaceprojection; and comparing the depth value of the umbra region with thatof the combined surface projection, and if the former is smaller, thendeeming that surface forming the combined surface projection is totallyhidden.
 13. A method as claimed in claim 12 wherein the selecting stepselects the smallest of the approximate largest depth values of surfacesprojected on each element.
 14. A method as claimed in claim 12 whereinthe determining step selects the smallest possible depth value of eachelement.
 15. A method as claimed in claim 1, wherein said calculationsare further simplified by detecting, and not carrying out an occlusionor invisibility relationship computation for, surface areas which aretotally unoccluded, said detecting of said totally unoccluded areascomprising the steps of:prior to the carry-out step, creating andstoring a combined projection for each of selected ones of said surfacesor surface elements and for each surface or element of each storedcombined projection, indicating whether the surface or element iseither;(a) not within the combined projection of any of said selectedsurfaces; (b) within the combined projection of a single one of saidselected surfaces; or (c) within the combined projection of more thanone of said selected surfaces; and scanning the combined projection ofeach said selected surface and where, in all elements for one projectionare indicated by step (14(b)), deeming the surface so projected to betotally unoccluded.
 16. A method as claimed in claim 1, wherein saidsurfaces are arranged in a hierarchy represented by varying levels ofdetails.
 17. A method of reducing the visibility related computations inan environment consisting of three-dimensional abstract or physicalsurfaces, said method performed on a computer, said method comprisingthe steps of:prior to a visibility computation being carried out, someor all viewpoints or possible occurrences of viewpoints are classifiedinto groups of viewpoints; defining one or more projection surfaces forthe purpose of generating simultaneous projections of surfaces orsurface elements with respect to a group of viewpoints; for selectedsurfaces, and for each group of viewpoints, determining whether thosesurfaces or their surface elements are always invisible to said group bycomputing and comparing their projection mappings or simultaneousprojections on said projection surfaces; ignoring or treating speciallysome or all surfaces or surface elements which are always invisible tosaid group of viewpoints during the actual visibility or visibilityrelated computations for some or all viewpoints in said groups; wherebythe visibility related computations are reduced.
 18. A method ofreducing the visibility, radiosity or visibility related computations inan environment consisting of three-dimensional abstract or physicalsurfaces, said method performed on a computer, said method comprisingthe steps of:prior to a visibility computation being carried out,classifying some or all viewpoints or possible occurrences of viewpointsinto groups of viewpoints; defining one or more projection surfaces forthe purpose of the simultaneous projections of surfaces or surfaceelements with respect to a group of viewpoints; dividing each of saidprojection surfaces into regular or irregular grids; defining a datastructure which organizes computer storage for storing of projections onsaid grids; for each of the selected surfaces or surface elements andfor each group of viewpoints, simultaneously projecting said surfaces ortheir surface elements onto the projection surfaces, computing gridcells which are under the projections; and ignoring or treatingspecially surface elements which are always visible to said group ofviewpoints during the actual visibility or visibility relatedcomputations for selected viewpoints in said group; whereby thevisibility, radiosity or visibility related computations are reduced.19. A method of storing computer generated image data, said methodperformed on a computer having a physical data store, said methodcomprising the steps of:identifying a plurality of image portionsvisible to a selected group of viewpoints; selecting those portionshaving a predetermined image characteristic and storing same in anorganization storage structure in the physical data store; for a firstone of said selected portions, allocating a portion identifier andstoring same together with image data of said first portion in thephysical data store; and for the remaining said selected portions,calculating a difference value identifier and storing same togethercorresponding image data of said selected portion, wherein any saidselected portion is addressable by means of said portion identifier andone or more said difference value identifiers.
 20. A method as claimedin claim 19 wherein the calculated difference value identifierrepresents an address difference value between a said remaining selectedportion and said first selected portion.
 21. A method as claimed inclaim 19 wherein the calculated difference value identifier representsan address difference value between a said remaining selected portionand another said remaining selected portion, in which one of saidremaining selected portions has a calculated difference value identifierthat represents an address difference value between a said remainingselected portion and said first selected portion.
 22. A method asclaimed in claim 19 wherein said storage structure is non-contiguous.23. A method as claimed in claim 22 wherein said storage structure is alinked-list.
 24. A method as claimed in claim 19 wherein said storagestructure is contiguous.
 25. A method as claimed in claim 22 whereinsaid storage structure is an array.
 26. A method as claimed in claim 19wherein said image portions are stored based upon a plurality of saidpredetermined image characteristics to give multiples sets of imagedata, in which any element of any set can be manipulated based upon aviewing from another group of viewpoints.
 27. A method as claimed inclaim 26 wherein said manipulation involves adding an element to a set,deleting an element from a set, or copying an element between any two ormore sets.
 28. A method as claimed in claim 27 wherein a plurality saidpredetermined image characteristics are available and only the smallestof the plurality less one corresponding set(s) are(is) retained, theother one being redundant.
 29. A method of reducing the complexity ofcalculations required for the production of multi-dimensional computergenerated images or the reduction of multi-dimensional data tomulti-dimensional data having at least one less dimension, said methodperformed on a computer, said method comprising the steps of:observingan object surface with a plurality of viewpoints, and defining aprojection surface for each said viewpoint; creating a working surfaceand mapping each of said projection surfaces onto said working surface;computing a combined region on said working surface that contains atleast one of the projection surfaces; whereby the complexity ofcalculations required for the production of multi-dimensional computergenerated images or the reduction of multi-dimensional data tomulti-dimensional data having at least one less dimension is reduced.30. A method as claimed in claim 29 wherein prior to the computing stepoccurring, the step of:approximating the viewpoints by calculating avolume containing all of the viewpoints; and in which the computing stepuses said volume to approximate all said viewpoints.
 31. A method ofreducing the complexity of calculations required for the production ofmulti-dimensional computer generated images or the reduction ofmulti-dimensional data to multi-dimensional data having at least oneless dimension, said method performed on a computer, said methodcomprising the steps of:observing an object surface with a plurality ofviewpoints, and defining a projection surface for each said viewpoint;creating a working surface and mapping each of said projection surfacesonto said working surface; computing a region that contains all themappings; whereby the complexity of calculations required for theproduction of multi-dimensional computer generated images or thereduction of multi-dimensional data to multi-dimensional data having atleast one less dimension is reduced.
 32. A method as claimed in claim 31wherein prior to the computing step occurring, the step of:approximatingthe viewpoints by calculating a volume containing all of the viewpoints;and in which the computing step uses said volume to approximate all saidviewpoints.
 33. A method as claimed in claim 12 wherein saidcalculations for said remaining surfaces are further reduced incomplexity by:establishing a plurality of accuracy levels required to bereached by form-factor computations of said remaining surfaces;allocating one of said accuracy levels to each of said always occludedsurfaces, to each of said always hidden surfaces, and to each element ofsaid combined projection; updating the accuracy level of each saidsurface with the accuracy level of the corresponding element of thecombined projection if the latter is larger, and subsequentlyscan-converting each of said surfaces in order commencing with thosehaving the highest accuracy level and ending with those having thelowest accuracy level, the updated accuracy levels indicating themaximum level of accuracy for form-factor computations for each saidsurface; and determining if the updated accuracy level for each saidsurface is higher than that which said surface can provide, and if so,recursively subdividing the corresponding said surface into a pluralityof sub-surfaces until the corresponding accuracy levels of saidsub-surfaces match that of said surface.
 34. A method as claimed inclaim 33 wherein said form-factor computations are performed using aray-tracing technique or a hemi-cube technique.
 35. A method ofscan-converting a plurality of surfaces of a multi-dimensional computergenerated image, said method performed on a computer, said methodcomprising the steps of:creating a data structure comprising a pluralityof two-dimensional arrays, each said array relating to a correspondingaccuracy level for a projection of said surfaces as viewed from aviewpoint, the elements of each array being pixels on a projectionplane; for each said element, providing an associated sub-divisionindicator, the sub-division indicator being adapted to indicate anactive sub-division of the corresponding said element; initializing eachsaid sub-division indicator to OFF; for each patch of said surface,defining a desired accuracy for same and scan-converting the projectionincluding said patches in decreasing order of accuracy intocorresponding elements of said structure, and setting the sub-divisionindicator for each said element of the highest accuracy level to ON ifthat element corresponds to one of said patches; for each said elementof the surface, if the sub-division indicator is ON, accessing thesub-elements of said element which are under the projection, and of theindicator is not ON, updating the patch in form to said sub-element, ifthe depth of the patch is less than the depth stored in the sub-element;accessing each said element and adding a form-factor contribution of theelement to the form-factor of a record of the patch whose own identifieris stored in the patch; whereby a plurality of surfaces of amulti-dimensional computer generated image are scan-converted.